package com.hero.gateway.zuul.filter;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.apache.commons.lang.StringUtils;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

@Component // 该组件需要注册到spring中
public class SecondFilter extends ZuulFilter {
    @Override
    public String filterType() { // 过滤器的类型: pre,route,post,error
        return FilterConstants.PRE_TYPE; // FilterConstants 有提供常量值
    }

    @Override
    public int filterOrder() {// 同类型的过滤器类型执行优先级设置，跨越不了其他类型过滤器
        return 0; // 同级过滤器类型中，值越小，优先级越大，可为负数
    }

    @Override
    public boolean shouldFilter() {// 是否启用当前过滤器
        RequestContext cxt = RequestContext.getCurrentContext();
        return cxt.sendZuulResponse();
    }

    @Override
    public Object run() { // 需要拦截的逻辑核心
        return null;
    }
}
